import { useEffect } from "react";

// 定义一个高阶组件，用于测量组件渲染时长
export const withPerformance = (WrappedComponent) => {
  // 返回一个新的组件
  return function ABC(...props) {
    // 开始计时
    console.time(`${WrappedComponent.name}组件渲染时长`);

    // 使用useEffect钩子，在组件挂载时结束计时
    useEffect(() => {
      // 结束计时
      console.timeEnd(`${WrappedComponent.name}组件渲染时长`);
    }, []);
    // 返回被包裹的组件
    return <WrappedComponent { ...props }></WrappedComponent>;
  };
};
